با استفاده از داده های زلزله ها در ایران و جهان به سوالات زیر پاسخ دهید.
بارگزاری داده ها و کتابخانه ها:
library(readr)
library(dplyr)
library(ggmap)
library(highcharter)
library(stringr)
earth_q <- read_rds("data/historical_web_data_26112015.rds")
۱. با استفاده از داده های historical_web_data_26112015.rds و استفاده از نمودار پراکنش سه بعدی بسته plotly نمودار طول، عرض و عمق زلزله ها را رسم نمایید. علاوه بر آن بزرگی هر نقطه را برابر بزرگی زمین لرزه قرار دهید.
library(plotly)
p <- plot_ly(data = earth_q, x = ~Latitude, y = ~Longitude, z = ~Depth, size = ~Magnitude,
marker = list(color = ~Magnitude, symbol = 'circle', sizemode = 'diameter', colorscale = c('#FFE1A1', '#683531'), showscale = TRUE), sizes = c(0.5, 7.8),
text = ~paste('Province:', Province, '<br>City:', City, '<br>Magnitude:', Magnitude)) %>%
add_markers() %>%
layout(scene = list(title = 'Iran Earthquakes between Sep. to Nov. 2015',
xaxis = list(title = 'Latitude', range = c(23, 40)),
yaxis = list(title = 'Longitude', range = c(40, 71)),
zaxis = list(title = 'Depth', range = c(0, 162))))
p۲. پویانمایی سونامی های تاریخی را بر حسب شدت بر روی نقشه زمین رسم نمایید.(از داده زلزله های بزرگ استفاده نمایید.)
برای این سوال از داده های بزرگ استفاده می کنیم، سپس مقادیر نامعلوم را داده حذف کرده و بر اساس مقادیر شدت، نمودار را رسم می کنیم.
library(gganimate)
disaster = read_delim("data/disaster.txt", "\t", escape_double = FALSE, trim_ws = TRUE) %>%
rename(lat = LATITUDE,long = LONGITUDE, magnit = INTENSITY,name = COUNTRY,year = YEAR) %>%
dplyr::select(lat, long, magnit, name, year)
nadis <- na.omit(disaster) %>% arrange(-magnit)
mapWorld <- borders("world", colour="gray50", fill="gray50") # create a layer of borders
p <- ggplot() + xlab("longitute") + ylab("latitude") + mapWorld + ggtitle("Earthquake Intensity")
p <- p + geom_point(aes(x = nadis$long, y = nadis$lat, size = nadis$magnit, frame = nadis$magnit), color="indianred1") + guides(size=guide_legend(title="Intensity"))
gganimate(p)
animation <- gganimate(p, "images/eq.gif")۳. نمودار چگالی دو بعدی زلزله های تاریخی ایران را رسم کنید.( از داده iran_earthquake.rds و لایه stat_density_2d استفاده نمایید).
برای حل این سوال ابتدا یک داده ی پرت را که خارج از ایران بود حذف می کنیم. سپس نمودار چگالی را بر روی نقاط رخداد زلزله می کشیم.
iran_eq <- read_rds("data/iran_earthquake.rds")%>% arrange(-Long)
iran_eq = iran_eq[-c(1),]
p <- ggplot(iran_eq, aes(x=Long, y=Lat)) +
geom_point() + stat_density_2d(aes(fill = ..level..), geom = "polygon") +
xlab("Longitude") + ylab("Latitude") +
guides(fill=guide_legend(title="Density")) +
scale_fill_distiller(palette=4, direction=-1) +
scale_x_continuous(expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0)) +
ggtitle("Iran Earthquakes Density Plot")
p۴. احتمال اینکه در ایران در پنج سال آینده زلزله به بزرگی هفت ریشتر رخ دهد را محاسبه کنید. (از احتمال شرطی استفاده کنید.)
iran_sig_eq <- iran_eq %>% filter(Mag >= 7) %>% arrange(desc(OriginTime))
last <- iran_sig_eq %>% slice(1)
diff = as.numeric(Sys.time() -last$OriginTime, units="days")
diff = diff %/% 365
diff_year = diff + 5
after_year = 1 # for first one
for (i in 1:nrow(iran_sig_eq)) {
if (i > 1) {
differ = as.numeric(iran_sig_eq[i-1,]$OriginTime - iran_sig_eq[i,]$OriginTime, units="days") %/% 365
if (differ >= diff_year) {
after_year = after_year + 1
}
}
}
after_year = after_year / nrow(iran_sig_eq)
after_two = 1 # for first one
for (i in 1:nrow(iran_sig_eq)) {
if (i > 1) {
differ = as.numeric(iran_sig_eq[i-1,]$OriginTime - iran_sig_eq[i,]$OriginTime, units="days") %/% 365
if (differ >= 2) {
after_two = after_two + 1
}
}
}
after_two = after_two / nrow(iran_sig_eq)
p = (after_year)/(after_two)
cat("Probability of earthquake in 5 years is", p)Probability of earthquake in 5 years is 0.5
۵. بر اساس داده های زلزله های بزرگ ابتدا تعداد و متوسط کشته زلزله ها را بر حسب کشور استخراج نمایید. سپس نمودار گرمایی تعداد کشته ها را بر روی کره زمین رسم نمایید.(مانند مثال زیر!)
۶. با استفاده از داده لرزه های بزرگ و به وسیله طول، عرض، شدت، عمق مدلی برای پیش بینی تعداد کشته های زلزله بیابید.
۷. با استفاده از داده worldwide.csv به چند سوال زیر پاسخ دهید. تحقیق کنید آیا می توان از پیش لرزه، زلزله اصلی را پیش بینی کرد؟
۸. گزاره " آیا شدت زلزله به عمق آن بستگی دارد" را تحقیق کنید؟ (طبیعتا از آزمون فرض باید استفاده کنید.)
۹. میانگین سالانه زلزله ها را بر حسب کشور به دست آورید. آیا میتوان دلیلی در تایید یا رد تئوری هارپ ارائه کرد.
۱۰. سه حقیقت جالب در مورد زلزله بیابید.